Installing on ICP

Install HCL Accelerate into a Kubernetes cluster on ICP.

Before you begin

The ID that you use to install the product must be able to make changes to the host environment. The tools required by all installation scenarios include the following items:
  • Docker installed on the host system.
    Note: If you use Docker for Windows, make sure Docker is using Linux-type containers. HCL Accelerate does not support Windows-type containers.
  • Internet connection. During installation, files and container images are retrieved from remote locations. If you are unable to access the internet during installation, you can download the files beforehand and perform an offline installation. HCL Accelerate supports the following browsers: Chrome, Firefox, and Edge.
    Note: Steps to retrieve the container images from public repository to your private repository:

    Use pull command to pull the container images from public repository.

    $ docker pull public repo

    Use tag command to tag the public and private repository.

    $ docker tag public repo private repo

    Use push command to push container images to private repository.

    $ docker push private repo

    All the container images are retrieved from public to private repository.

Note: The installation files used for offline installation are not the same as those used for internet-connected installation. Ensure that you download the right file for you installation environment.

If you are performing an offline installation of HCL Accelerate, GraphQL Playground will not load for use.

Before starting installation, ensure that the following applications are installed in the target environment:

Get a key. The key enables you to complete installation. Visit the HCL Accelerate web portal to obtain your key. After completing the form, you will receive a confirmation email with an access key. Store the key in a readily-available location; you use it during installation.

About this task

You will install HCL Accelerate into a Kubernetes cluster on ICP. The commands pull the HCL Accelerate images from a GitHub repository and places them into the ICP clusters.

Procedure

  1. Download the installation file for your environment.
    Note: For macOS and Linux installations, set the appropriate permissions before running the file: sudo chmod +x.
  2. On you ICP Dashboard, select Configure Client, and then paste the provided Kubectl commands into a command shell on your client and run them.
    The Kubectl commands define your Kuberbetes context. Test the configuration by running the following commands:
    
         kubectl get nodes
                kubectl get pods --all-namespaces
    If you see messages like the following examples, your configuration is ready to use.
    
         10.134.119.132   Ready     <none>    151d      v1.10.0+icp-ee
         10.134.119.24    Ready     <none>    151d      v1.10.0+icp-ee
         10.134.119.65    Ready     <none>    151d      v1.10.0+icp-ee
         10.134.119.9     Ready     <none>    151d      v1.10.0+icp-ee
  3. On ICP dashboard, click Manage > Namespaces > Create Namespace > , and enter a name for the name space.
  4. Create MongoDB in the new namespace by completing the following steps:
    1. On the ICP dashboard, select Catalog > ibm-mongodb-dev.
    2. On the ibm-mongodb-dev page, select Configure, and then, from the Target namespace list, select the namespace you created earlier.
    3. Complete configuration by entering a release name, and password for the MongoDB admin user, and then click Install.
      This creates a persistent volume claim.
  5. Click Platform > Storage > , and then create a persistent volume for your claim by completing the following steps:
    1. On Storage page, click Create Persistent Volume.
    2. On the Create Persistent Volume window, enter a name for the volume.
    3. Turn JSON mode ON.
      The underlying JSON file for the persistent volume is displayed. In the JSON script for the NFS object, and specify the server's IP address, and the path for the new volume. The following code snippet illustrates a typical example:
      
           "nfs": {
                "server": "ip_address",
                "path": "/volume_path"
              },
    4. Click Create.
      In the Storage window, check for the status of Bound for the new volume.
    5. Optional: In a command shell on the client, use the following kubectl command to check pod status: kubectl get pods -n persistentVolume_name.
  6. Grant additional permissions to the MongoDB user by completing the following steps:
    1. Using a client command shell, logon to the pod as the admin user.
    2. Use the following command to grant additional permissions:
      db.grantRolesToUser( "mongo", ["readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin"]  )
      If the command fails, an error message is displayed.
    3. If no message is displayed, type exit to leave the pod.
  7. Using a client command shell, type kubectl get services -n namespace to display the MongoDB service.
    Te service name is the host name for the MongoDB service.
  8. Determine the configuration properties to specify. You can customize the installation by specifying configuration properties on the helm install command.

    Some of the properties that you specify are dependent on your environment. However, there are several properties that must be specified. Below are the required properties.

    access.key
    The product access key obtained from Passport Advantage.
    url.domain

    The host name must resolve to a name on your DNS server, or in the server's hosts file. On Linux, the file location is etc/hosts; on Windows, the location is C:\Windows\System32\drivers\etc\hosts.

    mongo.url
    The URL of the MongoDB. Specify the following parameters.
    username
    The user ID to authenticate with the MongoDB database.
    password
    The associated password to authenticate with the MongoDB database.
    port
    The port number for the MongoDB database. Use the value shown in the example, which is 27017.
    service_name
    The MongoDB service name you retrieved in Step 8.
    Note: If you used the install command in the previous step to install the MongoDB, use the following values for the mongo.url property.
    mongodb://mongo:mongo@velocity-mongo-ibm-mongodb-dev:27017/admin

    If you use the default IBM MongoDB, make sure to grant the MongoDB user full write privileges.

    name
    The name space where the Helm chart is applied, and the name of Helm chart.
    --name standard ./velocity-1-5-0-helm.tgz
  9. Run the helm install command to install the HCL Accelerate images into ICP. The following example shows the a typical configuration properties:
    
         helm install \
         --set access.key=my_access_key \
         --set url.domain=my_hostname \
         --set mongo.url=mongodb://mongo:mongo@mongodb-servicename:27017/admin \
         --set url.protocol=https \
         --set ui.service.externalPort=80 \
         --set ingress.enable=true \
         --name standard ./velocity-1-5-0-helm.tgz

What to do next

Access HCL Accelerate at the URL you specified in the helm chart. You can refresh the status display by using the following kubectl command: kubectl get pods. The default admin user name is admin and the default password is admin.